The SCSI interface may be best described as a device independent input/output bus which allows a variety of peripheral devices to be connected to a personal computer system. SCSI refers to Small Computer Systems Interface, and was initially developed to provide a disk drive interface that supported logical addressing of data rather than the more prevalent physical addressing. In addition, the SCSI interface was developed to transfer information in parallel, byte-wise fashion instead of serially, thus, ending certain compatibility difficulties associated with developing new disk drive technologies and bringing them to the marketplace. The electrical characteristics and signal protocols of the SCSI interface were developed in such a manner that the requirements of various peripheral devices could be accommodated with relative ease and flexibility. In particular, the SCSI interface protocol defines a number of commands which are available for accessing and querying a particular peripheral device regarding the parameter set required for the device to operate correctly. This particular feature of the SCSI interface makes it possible for a system designer to write a software device driver program for a generalized peripheral device, without regard to device specific parameter set details.
In accordance with the various versions of the SCSI interface, such as, SCSI-1, SCSI-2, and SCSI-3, anywhere from 8 to 32 individual peripheral devices can be addressed on an SCSI bus depending on the width of the bus (8-bit, 16-bit or 32-bit bus width). These devices are generally categorized as initiators and targets, with any particular peripheral device able to play either role at a particular point in time. Specifically, a peripheral device functioning as an initiator, is a device that initiates an information transaction or data transfer by giving another peripheral device a particular task to perform. An example of an initiator might well be the SCSI host adapter of a personal computer system, while an example of a typical target device might well be a rotating disk data storage system such as a hard disk drive or CD-ROM. A target peripheral device may be thus seen as the device which carries out the task identified by the initiator.
As was mentioned previously, and as is depicted in the generalized block diagrams of FIGS. 1A, 1B and 1C, an SCSI interface bus configuration may have any combination of initiator and target devices, so long as the total does not exceed the number allowed by the bus width (8, 16 or 32). Particular basic SCSI configurations illustrated in FIG. 1A include a single initiator, single target configuration such as a computer system host adapter coupled to an SCSI hard disk controller; a single initiator, multiple target configuration, such as a computer system host adapter coupled to a hard disk drive and a CD-ROM is depicted in FIG. 1B; and FIG. 1C illustrates a multiple initiator, multiple target configuration, such as might obtain in a local area network in which multiple computer systems are connected to multiple printers, disk drives, CD-ROMs, and the like.
The SCSI bus may be from 8 to 32 bits wide, depending on configuration, with the standard SCSI bus being an 8-bit wide bus comprising 18 signals. In accord with the SCSI specification, these signals are either single ended active-low signals or differential signals defined by output driver circuitry on the initiator and target devices. The reason for this signal convention is that the SCSI bus is required to be terminated at both ends for proper operation. Passive termination is typically provided by termination resistors while active termination may be provided by any number of means well understood by those having skill in the art. In single ended mode, terminators (whether active or passive) are coupled to a power supply, which is preferably 5.0 volts, but may range from about 3.3 volts to about 6.0 volts, and function to pull-up the signal lines of the bus to about 2.5 to about 3.0 volts, thereby holding the signals inactive until an output driver pulls-down the signal line to an active low. Advantageously, termination in combination with an active-low signal level, makes possible to leave devices connected to the bus whose power has been turned-off. However, as will be described in greater below, termination often impacts with the ability of an output driver to meet certain other SCSI signal conventions, particularly with regard to the maximum pull-up voltage or V.sub.OH.
In accordance with the specification for the SCSI FAST 20 interface, the signal swing of output drivers from a, for example, SCSI controller chip is defined as a minimum V.sub.OL of 0.0 volts to a maximum V.sub.OH of 3.7 volts DC. Although a larger V.sub.OH value would not necessarily degrade the signal performance of various SCSI integrated circuits coupled to the bus, taking V.sub.OH higher than about 3.8 volts does have a significant effect on the overall power consumption of the SCSI FAST 20 System. In particular, because inactive signal lines of the bus are pulled-up to approximately 2.5 volts by the terminators, it will be understood that if an active pull-up output driver were to pull an inactive signal up to a value exceeding 3.5 volts to about 3.8 volts, a significant voltage differential would be established between an output driver in the pull-up state and the bus, thus causing significant amounts of current to be sourced to the bus resulting in disadvantageous drops along the bus and very high power consumption. In addition, this tendency would be substantially magnified were the SCSI bus to be heavily populated, and in a generally inactive state. Such a situation would obtain where an SCSI FAST 20 bus was coupled between multiple initiators and multiple target devices, such as depicted in FIG. 1C, and where the host computer was engaged in processing operations requiring very few peripheral calls.
Such a V.sub.OH requirement (3.7 volts maximum) for SCSI FAST 20 output drivers, presents a significant challenge to an integrated circuit designer, when it is understood that the integrated circuits embodying such an output driver are typically coupled to a 5.0 volt supply voltage, and are generally fabricated using 0.5 micron CMOS process technology (at least as regards the more high-tech, contemporary SCSI circuits). In this technology, it is common for the output driver to be implemented using pull-up and pull-down N-channel transistors, with the threshold voltage (V.sub.T) of the N-channel pull-up being commonly in the range from about 0.8 volts to about 1.0 volts. Accordingly, when an N-channel pull-up is turned-on, with a gate-source voltage (V.sub.GS) of about 5.0 volts (V.sub.DD) the output (V.sub.GS -V.sub.T) will exhibit a V.sub.OH of from about 4.0 to about 4.2 volts. This maximum V.sub.OH is out-of-spec on the high side, thus giving rise to potential power consumption problems.
Using an N-channel pull-up configuration, one method of reducing this output voltage is to reduce the gate-source voltage (V.sub.GS) of the pull-up N-channel transistor. The gate voltage must accordingly be reduced from its conventional 5.0 volts (V.sub.DD) value to some lower voltage, i.e., in the range of about 4.5 volts, max. Since the N-channel pull-up gate electrode is coupled to the output of a pull-up pre-driver which swings between 0 and 5 volts, one method of reducing V.sub.GS would be to provide a resistive voltage divider between the pull-up pre-driver and the gate terminal of the N-channel pull-up transistor to thereby reduce the gate voltage. Such voltage divider configurations commonly set up a voltage of approximately 4.5 to about 4.75 volts on the pull-up gate, thus limiting the output voltage to approximately 3.5 volts V.sub.OH maximum.
Use of such a resistor voltage divider, for example in the pre-driver section, for the N-channel pull-up, alleviates the V.sub.OH problem somewhat, but causes another problem in its place. Because the output driver must be capable of driving a heavily loaded bus, conventional N-channel pull-up transistors are constructed to be rather large. Specifically, N-channel pull-up transistors are fabricated as a 12 transistor array, with each transistor having a channel width (W) of approximately 50 microns and a channel length (L) of approximately 0.9 microns, thus giving an N-channel pull-up transistor with an effective gate area of approximately 550 square microns. It will thus be understood by those having skill in the art, that the N-channel pull-up transistor is not only a high current device but also a high capacitance device. The current that must charge up a 550 square micron capacitor (and thus turn-on the N-channel pull-up) must now be directed through a resistor, thus establishing a classic RC time constant for the N-channel pull-up charge time. The increase in N-channel pull-up charge time caused by conventional voltage dividers was significant in that the output driver could no longer be able to operate (i.e., switch from low to high) within the AC timing specifications of a for example, SCSI FAST 20 interface operating at modern-day speeds in the range of about 20 megahertz.
Accordingly, it will be seen that there is a need for some means to adjust the V.sub.OH characteristics of an output driver of a for example, SCSI controller, to limit the V.sub.OH to the SCSI specified maximum, while at the same time maintaining the ability of the output driver to switch within the required AC timing specifications. Such an output driver should be able to take advantage of conventional resistive voltage divider networks provided on conventional SCSI devices as a means to allow "hot-plugging" of the devices to a SCSI bus, without allowing such resistive voltage dividers to disadvantageously effect the charge time of an N-channel pull-up coupled to the bus.